package com.oa.hyperion.service;

import com.github.pagehelper.PageInfo;
import com.oa.hyperion.entity.assets.AssetsGeneralLedger;
import com.oa.hyperion.repository.assets.AssetsGeneralLedgerMapper;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface AssetsGeneralLedgerService {
    /**
     * 获取表中所有资产信息
     * @return 资产列表
     */
    List<AssetsGeneralLedger> getAllAssets();

    /**
     * 单个条件查询
     * 根据资产类型查询
     * 根据资产状态查询
     * 根据所属部门查询
     * @param assets 资产
     * @return 资产列表
     */
    List<AssetsGeneralLedger> selectAssets(AssetsGeneralLedger assets);

    /**
     * 根据资产id查询
     * @param id 资产
     * @return 资产列表
     */
    AssetsGeneralLedger getAssetsById(int id);

    /**
     * 根据资产barCode查询
     * @param barCode 资产
     * @return 资产列表
     */
    AssetsGeneralLedger getAssetsByBarCode(String barCode);


    /**
     * 新增资产时，将资产信息写入总账表
     * @param assets 资产信息
     */
    boolean insert(AssetsGeneralLedger assets);

    /**
     * 多条件查询
     * 根据资产状态和类型查询
     * @param type 类型
     * @param status 状态
     * @return 资产列表
     */
    List<AssetsGeneralLedger> getAssetsByTypeAndStatus(int type,int status);


    /**
     * 修改资产信息
     * 场景：维修，借出、采购、调拨、报废
     * @param assets 资产信息
     */
    boolean update(AssetsGeneralLedger assets);

    /**
     * 分页展示
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<AssetsGeneralLedger> getByCondition(int pageNum,int pageSize);

}
